#include <QtTest/QtTest>
#include "testingObjects.h"

class TestQString: public QObject
{
    Q_OBJECT

private slots:
    void toUpper_data();
    void toUpper();
    void benchmark();
    void point();
};

void TestQString::toUpper_data()
{
    QTest::addColumn<QString>("string");
    QTest::addColumn<QString>("result");

    QTest::newRow("all lower") << "hello" << "HELLO";
    QTest::newRow("mixed")     << "Hello" << "HELLO";
    QTest::newRow("all upper") << "HELLO" << "HELLO";
}

void TestQString::toUpper()
{
    QFETCH(QString, string);
    QFETCH(QString, result);

    QCOMPARE(string.toUpper(), result);
}

void TestQString::point()
{
    Point2D alpha;
    Point2D beta(0,1);

    QCOMPARE(alpha.x(),beta.x());
    QCOMPARE(alpha.y(),beta.y());    
}

void TestQString::benchmark()
{
    Point2D alpha;
    Point2D beta(0,1);

    QBENCHMARK 
    {
      QCOMPARE(alpha.x(),beta.x());
    }
}

QTEST_MAIN(TestQString)
#include "test_code.moc"
